package com.lin.blog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lin.blog.entity.User;
import com.lin.utils.Result;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author lin
 * @since 2020-03-08
 */
public interface IUserService extends IService<User> {


    /**
     * 后台登出
     * @param token
     * @return
     */
    public Result adminLogout(String token);

    /**
     * 通过token获取用户信息
     * @param token
     * @return
     */
    public Result getUserInfoByToken(String token);

    /**
     * 设置昵称
     * @param userId
     * @param nickName
     * @return
     */
    Result setNickName(Long userId,String nickName);

    /**
     * 通过username修改密码
     * @param username
     * @param oldPassword
     * @param newPassword
     * @return
     */
    Result updateUserPasswordByUserName(String username, String oldPassword,String newPassword);

    /**
     * 更新头像
     * @param username
     * @param headImageUrl
     * @return
     */
    Result updateUserHeadImage(String username,String headImageUrl);

    /**
     *  后台通过账号密码获取用户
     * @param userName
     * @param password
     * @return
     */
    Result getUserByUserNameAndPassword(String userName,String password);

    /**
     * 通过主键ID查询User
     * @param id
     * @return
     */
    Result getUser(Long id);


    /**
     * 添加一个User
     * @param user
     * @return
     */
    Result saveUser(User user);


    /**
     * 通过主键ID删除User
     * @param id
     * @return
     */

    Result removeUser( Long id);

    /**
     * 通过主键ID更新User
     * @param id
     * @param user
     * @return
     */

    Result updateUser(Long id, User user);



    /**
     * 获取UserList
     * @return
     */
    Result  listUser();


    /**
     * 分页获取UserList
     * @param pageNum
     * @param pageSize
     * @return
     */
    Result  listUser(Long pageNum, Long pageSize);

}
